package dto.resDto;

import lombok.Getter;
import lombok.Setter;

import java.util.HashMap;
import java.util.Map;

@Getter
@Setter
public class JsonData {

    public boolean success;

    public String msg;

    public Object data;

    public JsonData(boolean success) {
        this.success = success;
    }

    public JsonData() { }

    public static JsonData success(Object object, String msg) {
        JsonData jsonData = new JsonData(true);
        jsonData.data = object;
        jsonData.msg = msg;
        return  jsonData;
    }

    public static JsonData success(Object object) {
        JsonData jsonData = new JsonData(true);
        jsonData.data = object;
        return  jsonData;
    }

    public static JsonData success() {
        return new JsonData(true);
    }

    public static JsonData fail(String msg) {
        JsonData jsonData = new JsonData(false);
        jsonData.msg = msg;
        return jsonData;
    }

    public static JsonData fail() {
        JsonData jsonData = new JsonData(false);
        return jsonData;
    }

    public static JsonData fail(String msg, Object data) {
        JsonData jsonData = new JsonData(false);
        jsonData.setMsg(msg);
        jsonData.setData(data);
        return jsonData;
    }

    public boolean isSuccess() {
        return success;
    }

    public void setSuccess(boolean success) {
        this.success = success;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public Map<String, Object> toMap() {
        HashMap<String, Object> result = new HashMap<String, Object>();
        result.put("success", success);
        result.put("msg", msg);
        result.put("data", data);
        return result;
    }

}
